package com.home.cop.employee.service;

import com.github.pagehelper.PageInfo;
import com.home.cop.employee.model.SysMenu;
import com.home.cop.employee.model.SysRole;

import java.util.List;
import java.util.Map;

public interface SysRoleService {

    /**
     * 根据机构名称获取角色列表
     * @param params
     * @param pageNum
     * @param pageSize
     * @return
     */
    public PageInfo<SysRole> list(Map<String,Object> params,Integer pageNum,Integer pageSize);

    /**
     * 删除角色
     * @param roleId
     */
    public void deleteRole(Integer roleId);

    /**
     * 新增角色
     * @param role
     */
    public void insert(SysRole role);

    /**
     * 修改角色信息
     * @param role
     */
    public void updateRoleInfo(SysRole role);

    /**
     * 修改角色状态
     * @param roleId
     * @param status
     */
    public void updateRoleStatus(Integer roleId,Integer status);

    /**
     * 统计角色被用的数量
     * @param roleId
     * @return
     */
    public Map<String,Integer> countRoleUse(Integer roleId);

    /**
     * 给角色授权
     * @param roleId
     * @param menus
     */
    public void updateRoleMenus(Integer roleId,String menus);

    /**
     * 获取当前角色下的菜单
     * @param roleId
     * @return
     */
    public List<SysMenu> getRoleMenus(Integer roleId);

    /**
     * 获取所有的角色
     * @return
     */
    public List<SysRole> getAllRoles();

}
